package org.dev.app.config;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

/**
 * @author wangzhuangzhuang
 * @Description:
 * @date 2022-05-25 18:53
 */
@Configuration
public class ConfigBean {

	@Bean //将 RestTemplate 注入到容器中
	@LoadBalanced //在客户端使用 RestTemplate 请求服务端时，开启负载均衡（Ribbon）
	public RestTemplate getRestTemplate(){
		return new RestTemplate();
	}

	/**
	 * Spring Cloud Ribbon 默认使用轮询策略选取服务实例，可以根据自身的需求切换负载均衡策略
	 *
	 * */
	@Bean
	public IRule myRule() {
		// RandomRule 为随机策略
		return  new RandomRule();
	}
}